import asyncio
import time
import aiofiles


# 需求，利用异步任务写10000行文件，文件采用追加方式

async def test_demo(fp):
    # 异步方式执行with操作,修改为 async with
    # async with aiofiles.open("test.txt","w",encoding="utf-8") as fp:
    await fp.write("Have a good time.\n")  # 写入祝你玩的开心过得愉快
    # print("写入成功")


async def main():
    # 以追加的方式打开文件
    async with aiofiles.open("test.txt", "a", encoding="utf-8") as fp:
        # 建立文件列表
        file_list = []
        # 循环9999 也就是10000次 ps：range默认从0开始
        for i in range(9999):
            req = test_demo(fp)
            task = asyncio.create_task(req)
            file_list.append(task)
        await asyncio.gather(*file_list)


if __name__ == "__main__":
    start = time.time()  # 开始时间
    asyncio.run(main())  # 执行操作
    end = time.time()    # 结束时间
    print(f'异步执行了:{end - start}秒')